//
//  StackMobViewController.m
//  StackMob
//
//  Created by Hilary Muludiang on 2/29/12.
//  Copyright 2012 Versatile Systems, Inc. All rights reserved.
//

#import "StackMobViewController.h"
#import "StackMob.h"

@implementation StackMobViewController

@synthesize loginLogoutButton;
@synthesize passwordField;
@synthesize usernameField;

BOOL loggedIn = NO;


-(IBAction)LoginLogout:(id)UIButton{
	
		
	NSLog(@"%@", usernameField.text);
	
	if (!loggedIn){
		
		if (([usernameField.text length] ==0 ) || ([passwordField.text length ] == 0)){
			UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:@"Missing values" message:@"Please provide a username and password" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
			[errorAlert show];
			[errorAlert release];
		}
		else{
			NSLog(@"Username: %@", usernameField.text);
			NSLog(@"Password: %@", passwordField.text);
			
			NSDictionary *args = [NSDictionary dictionaryWithObjectsAndKeys:usernameField.text, @"username", passwordField.text, @"password", nil];
			[[StackMob stackmob] loginWithArguments:args andCallback:^(BOOL success, id result) {
				if (success) {
					
					UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:@"Login successed" message:@"Welcome you party animal!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
					[errorAlert show];
					[errorAlert release];
					loggedIn = YES;
					[loginLogoutButton setTitle:@"Log out" forState:UIControlStateNormal];
					
				} else {
					// Login Failed
					UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:@"Login failed" message:@"Please check your login credentials and try again" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
					[errorAlert show];
					[errorAlert release];
				}
			}];			
		}
	}
	else{
		
		[[StackMob stackmob] logoutWithCallback:^(BOOL success, id result) {
			if (success) {
				// logout succeeded
				UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:@"Logout successed" message:@"Come again" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
				[errorAlert show];
				[errorAlert release];
				loggedIn = NO;
				[loginLogoutButton setTitle:@"Log IN" forState:UIControlStateNormal ];
			} else {
				// logout failed
				UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:@"Logout failed" message:@"Please try logging out again" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
				[errorAlert show];
				[errorAlert release];
			}
		}];
	}
	
	
}



/*
 // The designated initializer. Override to perform setup that is required before the view is loaded.
 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
 if (self) {
 // Custom initialization
 }
 return self;
 }
 */

/*
 // Implement loadView to create a view hierarchy programmatically, without using a nib.
 - (void)loadView {
 }
 */


/*
 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
 - (void)viewDidLoad {
 [super viewDidLoad];
 }
 */


/*
 // Override to allow orientations other than the default portrait orientation.
 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
 // Return YES for supported orientations
 return (interfaceOrientation == UIInterfaceOrientationPortrait);
 }
 */

- (void)didReceiveMemoryWarning {
	// Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
	
	// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
	// Release any retained subviews of the main view.
	// e.g. self.myOutlet = nil;
}


- (void)dealloc {
	[loginLogoutButton release];
	[passwordField release];
	[usernameField release];
    [super dealloc];
}

@end
